
const app = getApp()



// 右侧每一类的 bar 的高度（固定）
const RIGHT_BAR_HEIGHT = 20;

// 右侧每个子类的高度（固定）
const RIGHT_ITEM_HEIGHT = 100;

// 左侧每个类的高度（固定）
const LEFT_ITEM_HEIGHT = 50

Page({

  data: {

    // 是否显示下面的购物车
    HZL_isCat: 0,

    // 购物车的商品
    HZL_my_cat: [],

    // 购物车的数量
    HZL_num:0,

    // 左 => 右联动 右scroll-into-view 所需的id
    HZL_toView: null,

    // 右侧每类数据到顶部的距离（用来与 右 => 左 联动时监听右侧滚动到顶部的距离比较）
    HZL_eachRightItemToTop: [],
    HZL_leftToTop: 0,



    // 当前左侧选择的
    HZL_currentLeftSelect: null,   
 
    // 数据
  

  },
  login: function()
  {
    
      let that =this
      wx.getUserProfile({
        desc: '用于登录',
        success(res){
          console.log(res)
          let nickName=res.userInfo.nickName
          let avatarUrl=res.userInfo.avatarUrl   
          wx.login({
            success(res){
              console.log(res)
              if(res.code){
                wx.request({
                  url: 'https://999.tianba.work/api/User/code',
                  data:{
                    code:res.code,
                    nickName:nickName,
                    avatarUrl:avatarUrl,
                  },
                  method: "GET",
                  success(res){
                    console.log(22,res.data)
                    wx.setStorageSync('access_token', res.data.session3rd);
     
                  }           
                })
              }
            }
          })
 
        }
      })
    
       
      
      },




  
  /**
   * 记录swiper滚动
   */
  HZL_swiperchange: function(e)
  {
    var that = this;
    that.setData({
      HZL_swiper_ID: e.detail.current,
    })
  },

  
  /**
   * 点击分类栏
   */
  HZL_categories:function(e)
  {
    console.log(e.currentTarget.dataset.id)
    var that = this;

    that.setData({
      HZL_swiper_ID: e.currentTarget.dataset.id
    })
  },


  /**
   * 获取每个右侧的 bar 到顶部的距离，
   * 用来做后面的计算。
   */
  HZL_getEachRightItemToTop: function ()
  {
    var obj = {};
    var totop = 0;
    //  var menuList=this.data.menuList
  console.log(11,this.data.menuList)
    let menuList=this.data.menuList;
    let menu_id="Y"+this.data.menuList[0].menu_id+""
    console.log(menu_id)
    // 右侧第一类肯定是到顶部的距离为 0
    obj[menu_id] = totop     
    // 循环来计算每个子类到顶部的高度
    for (let i = 1; i < (menuList.length + 1); i++) {  
      totop += (RIGHT_BAR_HEIGHT + menuList[i - 1].vegetableList.length * RIGHT_ITEM_HEIGHT)
      // 这个的目的是 例如有两类，最后需要 0-1 1-2 2-3 的数据，所以需要一个不存在的 'last' 项，此项即为第一类加上第二类的高度。
      obj[menuList[i] ? "Y"+menuList[i].menu_id+"" : 'last'] = totop    
    }
    // console.log(obj)
    return obj
  },


  /**
   * 监听右侧的滚动事件与 HZL_eachRightItemToTop 的循环作对比
   * 从而判断当前可视区域为第几类，从而渲染左侧的对应类
   */
  right: function (e)
  {   
    // console.log(e)
    // menuList=this.data.menuList
    // console.log(this.data.menuList)
    let menuList=this.data.menuList;
    // console.log(menuList)
    // console.log(this.data.HZL_eachRightItemToTop)
    for (let i = 0; i < menuList.length; i++) {
      let left = this.data.HZL_eachRightItemToTop["Y"+menuList[i].menu_id+""]
      // console.log(left)
      let right = this.data.HZL_eachRightItemToTop[menuList[i + 1] ? "Y"+menuList[i+1].menu_id+"" : 'last']
      // console.log(right)
      if (e.detail.scrollTop < right && e.detail.scrollTop >= left) {
        this.setData({
          HZL_currentLeftSelect:"Y"+menuList[i].menu_id+"",
          HZL_leftToTop: LEFT_ITEM_HEIGHT * i
        })
      }
    }
  },


  /**
   * 左侧类的点击事件，
   * 点击时，右侧会滚动到对应分类
   */
  left: function (e)
  {    
    console.log(e)
    
    this.setData({
      HZL_toView: e.target.id || e.target.dataset.id,
      HZL_currentLeftSelect: e.target.id || e.target.dataset.id
    })
  },


  /**
   * 去结算按钮
   * 具体功能自己写
   */
  go: function()
  { 
    
    let that=this
    
    console.log(that.data.HZL_my_cat.length)
    if(that.data.HZL_my_cat.length==0){
      wx.showToast({
        title: '请先点餐',
        icon: 'success',
        duration: 1500
      })
    }
    else{
      if(!wx.getStorageSync('access_token')){
        that.login();
      }
      let order=[]
      for(let i=0;i<that.data.HZL_my_cat.length;i++){        
        order.push(that.data.HZL_my_cat[i])
     }
     let orderList = JSON.stringify(order)
     let table=that.options.table
     let max=that.data.discount[0].max
     let min=that.data.discount[0].min
     let specialOffer=that.data.discount[0].special_offer
       wx.navigateTo({
         url:'/pages/order/order?list='+encodeURIComponent(orderList)+'&table_id='+table+'&max='+max+'&min='+min+'&special_offer='+specialOffer,    
       })
    }
   
    // 用户购物车(包含选择的商品)
   
  },


  /**
   * 是否显示下面的购物车
   */
  HZL_isCat:function(e)
  {
    var that = this;
    if (that.data.HZL_isCat == 0 && that.data.HZL_num > 0) {
      that.setData({
        HZL_isCat: 1
      })
    } else if (that.data.HZL_isCat == 1 && that.data.HZL_num > 0) {
      that.setData({
        HZL_isCat: 0
      })
    }
  },


  /**
   * 黑背景模态墙点外侧关闭
   */
  HZL_isCat_close:function(e)
  {
    this.setData({
      HZL_isCat: 0
    })
  },


  /**
   * 清空购物车
   */
  HZL_zero:function(e)
  {
    let menuList=this.data.menuList
    for (var i = 0; i < menuList.length; i++) {
      for (var j = 0; j < menuList[i].vegetableList.length; j++) {
        menuList[i].vegetableList[j].num = 0
      }
    }
    this.setData({
      HZL_isCat: 0,
      HZL_num: 0,
      HZL_my_cat: [],
      menuList: menuList,
    })
  },


  /**
   * 增加数量按钮
   */
  HZL_jia:function(e)
  {
    this.HZL_my_jia(e.currentTarget.id)
    this.setData({
      HZL_num: this.data.HZL_num,
      HZL_my_cat: this.data.HZL_my_cat,
      menuList: this.data.menuList,
    })
  },


  /**
   * 减少数量按钮
   */
  HZL_jian:function(e)
  {
   console.log("我是列表减")
    this.HZL_my_jian(e.currentTarget.id)
    if (this.data.HZL_num == 0) {
      this.data.HZL_isCat = 0;
    } else {
      this.data.HZL_isCat = 1;
    }
    this.setData({
      HZL_num: this.data.HZL_num,
      HZL_my_cat: this.data.HZL_my_cat,
      menuList: this.data.menuList,
    })
  },


  /**
   * 下面购物车增加按钮
   */

  HZL_jia1: function (e)
  {
   
    this.HZL_my_jia(e.currentTarget.id)
    this.setData({
      HZL_num: this.data.HZL_num,
      HZL_my_cat: this.data.HZL_my_cat,
      menuList: this.data.menuList,
      HZL_isCat: this.data.HZL_isCat
    })
  },


  /**
   * 下面购物车减少按钮
   */
  HZL_jian1: function (e)
  {
   console.log(e.currentTarget.id)
    this.HZL_my_jian(e.currentTarget.id)
    if (this.data.HZL_num == 0) {
      this.data.HZL_isCat = 0;
      this.HZL_zero()
    } else {
      this.data.HZL_isCat = 1;
    }
    this.setData({
      HZL_num: this.data.HZL_num,
      HZL_my_cat:this.data.HZL_my_cat,
      menuList: this.data.menuList,
      HZL_isCat: this.data.HZL_isCat
    })
  },


  /**
   * 封装加的方法
   */
  HZL_my_jia: function (e)
  {

    this.data.HZL_num++;
    let vegetableId=e
    console.log(111,vegetableId)
    let obj=[]
    for(let i=0;i<this.data.menuList.length;i++){
      for(let j=0;j<this.data.menuList[i].vegetableList.length;j++){
        if(this.data.menuList[i].vegetableList[j].vegetable_id==vegetableId){
           obj=this.data.menuList[i].vegetableList[j]
           this.data.menuList[i].vegetableList[j].num++
        }  
      } 
    }
    console.log(obj)
    console.log(obj.num)
    let HZL_my_cat = this.data.HZL_my_cat;
    
    // 如果商品存在 数量+1
    let exist = false;
    for (let k = 0; k < HZL_my_cat.length; k++) {
      if (obj.vegetable_id == HZL_my_cat[k].vegetable_id) {
        exist = true;
        HZL_my_cat[k].num = obj.num;
      }
    }
    console.log(exist);
    //如果为false push
    if (exist==false) {
  
      HZL_my_cat.push(obj)  
    }
    
    console.log('购物车',HZL_my_cat)
  },


  /**
   * 封装减的方法
   */
  HZL_my_jian: function (e)
  {
    console.log('----------',this.data.order)
    this.data.HZL_num--;
    let vegetableId=e
    console.log(111,vegetableId)
    for(let i=0;i<this.data.menuList.length;i++){
      for(let j=0;j<this.data.menuList[i].vegetableList.length;j++){
        if(this.data.menuList[i].vegetableList[j].vegetable_id==vegetableId){
           this.data.menuList[i].vegetableList[j].num--
        }  
 
      } 
    }
    if(this.data.order){
      for(let i=0;i<this.data.order.length;i++){
        if(vegetableId==this.data.order[i].vegetable_id){
          this.data.order[i].num--
        }
      }
    }
    let HZL_my_cat = this.data.HZL_my_cat;
    //数量-1
    for(let k =0;k<HZL_my_cat.length;k++){
      if(HZL_my_cat[k].num==0){
        HZL_my_cat.splice(k,1) 
       }
      //  if(vegetableId==HZL_my_cat[k].vegetable_id){
      //   HZL_my_cat[k].num--
      // }
    }
    
    console.log('购物车',HZL_my_cat)
   
  },

js:function(){
  let that=this
  let orderId=app.globalData.order_id
  console.log('接收的下单id',orderId)
  let order=[]
  let num=0
  wx.request({
    url: 'https://999.tianba.work/api/VOder/again?order_id='+orderId,
    success(res){
      console.log('---------',res)
      for(let i=0;i<res.data.data.orderList.vegetableList.length;i++){
        order.push(res.data.data.orderList.vegetableList[i])
      }
      console.log('接受的菜单',order)
      for(let i=0;i<res.data.data.menuList.length;i++){
        for(let j=0;j<res.data.data.menuList[i].vegetableList.length;j++){
         for(let k=0;k<order.length;k++){
          if(order[k].vegetable_id==res.data.data.menuList[i].vegetableList[j].vegetable_id){
            res.data.data.menuList[i].vegetableList[j].num=order[k].num
            console.log(444,res.data.data.menuList[i].vegetableList[j].num)
            num+=order[k].num
            console.log(num)
            that.setData({
              menuList:res.data.data.menuList,
              HZL_num:num,
              order:order
            })
          }
         }
       
            
        }
      }
      that.setData({
        HZL_my_cat:order,
       
      })
    }
  })
},


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options)
  {

    console.log('桌号',options.table)
    var that = this;
    wx.request({
      url: 'https://999.tianba.work/api/status/index',
      success(res){
        console.log('状态',res)
        that.setData({
          status:res.data.data.status,
          })
      }
    })
    wx.request({
      url: 'https://999.tianba.work/api/menu/list',
      success(res){
        console.log('分类',res)
        that.setData({
        menuList:res.data.data.MenuList
        })
        that.setData({
          HZL_eachRightItemToTop: that.HZL_getEachRightItemToTop()
        })
       
      }
    })
    wx.request({
      url: 'https://999.tianba.work/api/discount/index',
      success(res){
          console.log('优惠',res.data)
          if(res.data.lenght>0){
            that.setData({
              discount:res.data
            })
          }
          else{
            that.setData({
              discount:res.data
            })
          }
         
      }
    })
    
    // 高度大小
    wx.getSystemInfo({
      success: function (res) {
        var HZL_height = res.windowHeight - 160
        var HZL_height1 = res.windowHeight - 110
        that.setData({
          HZL_height: HZL_height,
          HZL_height1: HZL_height1
        })
      }
    });

    // 获取服务器数据
    console.log('请求接口: 获取服务器数据')


    // 更新数据
    // that.setData({

    //   // 将请求的服务器数据赋值更新
    //   menuList: wx.getStorageSync('menuList'),
    //   HZL_currentLeftSelect: "Y"+wx.getStorageSync('menuList')[0].menu_id+"",

    //   HZL_eachRightItemToTop: this.HZL_getEachRightItemToTop()
    // })
  },





    /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () 
  {
   
  },

})